package org.summer.lawyer.domain.vo.userwallet;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.summer.lawyer.domain.UserWallet;

import java.io.Serial;
import java.io.Serializable;



/**
 * 用户钱包视图对象 user_wallet
 *
 * @author summer
 * @date 2024-06-27
 */
@Schema(title ="用户钱包视图对象 user_wallet", description = "用户钱包视图对象 user_wallet")
@Data
@AutoMapper(target = UserWallet.class)
public class UserWalletVo implements Serializable{

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 用户钱包ID
     */
    @Schema(title = "walletId", type = "Long", description = "用户钱包ID")
    private Long walletId;

    /**
     * 用户ID
     */
    @Schema(title = "wxUserId", type = "Long", description = "用户ID")
    private Long wxUserId;

    /**
     * 钱包总收入（单位分）
     */
    @Schema(title = "walletIncome", type = "Long", description = "钱包总收入（单位分）")
    private Long walletIncome;

    /**
     * 钱包总支出（单位分）
     */
    @Schema(title = "walletExpense", type = "Long", description = "钱包总支出（单位分）")
    private Long walletExpense;

    /**
     * 钱包可用余额（单位分）
     */
    @Schema(title = "balanceFee", type = "Long", description = "钱包可用余额（单位分）")
    private Long balanceFee;

    /**
     * 钱包冻结金额
     */
    @Schema(title = "frozenAmount", type = "Long", description = "钱包冻结金额")
    private Long frozenAmount;

    /**
     * 用户提现最低金额（单位分）
     */
    @Schema(title = "withdrawMinPrice", type = "Long", description = "用户提现最低金额（单位分）")
    private Long withdrawMinPrice;

    /**
     * 提现手续费百分比，范围 0-100，0 为无提现手续费。例：设置 10，即收取 10% 手续费，提现 10 元，到账 9 元，1 元手续费
     */
    @Schema(title = "withdrawFeePercent", type = "Integer", description = "提现手续费百分比，范围 0-100，0 为无提现手续费。例：设置 10，即收取 10% 手续费，提现 10 元，到账 9 元，1 元手续费")
    private Integer withdrawFeePercent;
}
